/****************************************************************************************
 *
 * 赛事共用的混入，可能用于其它投票页面？
 *
 * *************************************************************************************/

import { CONTEST_STATUS } from "@/views/contestHall/contest.lib";
export const contestMixinsGlobal = {
	data () {
		return {
			timestampNow : 0,//当前时间戳
			contestStatus:Object.freeze(CONTEST_STATUS),//赛事状态
		}
	},
	computed:{
		/**
		 * 当前时间是否在时间范围内
		 * @returns {function(*=, *=): boolean}
		 */
		isNowInTheBetTimeRange(){
			return (start,end)=> {
				let _now = this.timestampNow //依赖于timestampNow
				let _start = Date.parse(start) /1000
				let _end = Date.parse(end) / 1000;
				if (_now < _end && _now > _start) {
					return true
				}else{
					return false
				}
			}
		},
		/**
		 * 赛事状态计算版（由于状态加入了不应该是状态的状态码，详见）
		 * 依赖timestampNow
		 * 这个应该是通用的
		 * @returns {string}
		 */
		contestStatusCnByCompute(){
			return (status,endTimeStr)=> {
				let _diff = Date.parse(endTimeStr) / 1000 - this.timestampNow
				console.log('_diff',_diff)
				let _status = status
				if( _status == 0 && _diff > 0  ){
					return '投注开始'
				}else if(_status == 0 && _diff < 0  ){
					return '投注结束'
				}else if(_status == 1){
					return '禁用'
				}else if(_status == 2){
					return '已开奖'
				}else if(_status == 3){
					return '作废'
				}else{
					return '？？？？'
				}
			}
		},

		/**
		 * //todo 需要整改
		 * @desc://根据队伍与比赛结果转换成直观的比赛结果内容,
		 * @date: 2021-07-22
		 */
		contestResultFlat () {
			let resultMap = {
				0:'勝',
				1:'平',
				2:'負',
			}
			return (result)=> {
				return resultMap[result]
			}
		},

		/**
		 * todo 需要整改
		 * 培率->中文暂时版,只能用于胜平负
		 * @returns {function()}
		 */
		contestOddsFlat (){
			return (odds)=> {
				if(odds instanceof Array){
					return ['胜','平','负'].reduce((ret,prev,index)=>{
						ret.push(prev+odds[index])
						return ret
					},[]).join(',')
				}else{
					return '加载中...'
				}
			}
		},

		//把状态数组转为一级对象 没有用
		// contestStatusObject () {
		// 	return this.contestStatus.reduce((ret, cur) => {
		// 		ret[cur.status] = cur.title
		// 		return ret
		// 	}, {})
		// },
	},
	created () {
		this.funResetTimestampNow();
	},
	methods: {
		//设置当前时间
		funResetTimestampNow(){
			this.timestampNow = parseInt((new Date().getTime()) / 1000) //取到当前时间戳
		}
	},
	filters:{

	}
}
